Verification of Programs Manipulating Complex Dynamic Data Structures

نویسنده

  • Jiří Šimáček
چکیده

We develop a verification method based on a novel use of tree automata to represent heap configurations to allow verification of important properties—such as no nullpointer dereferences, absence of memory leaks, etc.—for programs manipulating complex dynamically linked data structures. In our approach, a heap is split into several “separated” parts such that each of them can be represented by a tree automaton. The automata can refer to each other allowing the different parts of the heaps to mutually refer to their boundaries. Moreover, we allow for a hierarchical representation of heaps by allowing alphabets of the tree automata to contain other, nested tree automata. Program instructions can be easily encoded as operations on our representation structure. This allows verification of programs based on symbolic state-space exploration together with refinable abstraction within the so-called abstract regular tree model checking. A motivation for the approach is to combine advantages of automata-based approaches (higher generality and flexibility of the abstraction) with some advantages of separation-logic-based approaches (efficiency).

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

Verification of Programs with Complex Data

In this thesis, we discuss methods of model checking of infinite-state space systems based on symbolic verification—in particular, we concentrate on the use of the so-called regular tree model checking. As a part of our original contribution, we first present abstract regular tree model checking (ARTMC), a technique based on a combination of regular tree model checking with an automated abstrac...

متن کامل

Automated Reasoning and Natural Proofs for Programs Manipulating Data Structures

We consider the problem of automatically verifying programs that manipulate a dynamic heap, maintaining complex and multiple data-structures, given modular pre-post conditions and loop invariants. We discuss specification logics for heaps, and discuss two classes of automatic procedures for reasoning with these logics. The first identifies fragments of logics that admit completely decidable rea...

متن کامل

Abstract Regular Tree Model Checking of Complex Dynamic Data Structures

Regular Tree Model Checking of Complex Dynamic Data Structures Ahmed Bouajjani1, Peter Habermehl1, Adam Rogalewicz2, and Tomáš Vojnar2 1 LIAFA, University of Paris 7, Case 7014, 2 place Jussieu, F-75251 Paris 5, France. e-mail: {Ahmed.Bouajjani,Peter.Habermehl}@liafa.jussieu.fr 2 FIT, Brno University of Technology, Božetěchova 2, CZ-61266, Brno, Czech Republic. e-mail: {rogalew,vojnar}@fit.vutb...

متن کامل

Harnessing Forest Automata for Verification of Heap Manipulating Programs. (Vérification de programmes avec structures de données complexes)

This work addresses verification of infinite-state systems, more specifically, verification of programs manipulating complex dynamic linked data structures. Many different approaches emerged to date, but none of them provides a sufficiently robust solution which would succeed in all possible scenarios appearing in practice. Therefore, in this work, we propose a new approach which aims at improv...

متن کامل

Automatic Verification of Programs with Complex Data Structures

Although the software verification has made important progress during the last ten years, the verification of programs manipulating dynamic memory and complex data structures is still a challenge for the research in this domain. Automatic reasoning about the behaviours of such programs is a challenging problem because the classical techniques (static analysis or model checking) face big scalabi...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012